#include <map>

#include "enhsimconfig.h"

class ConfigFactory {
public:
	ConfigFactory(const std::map<std::string, std::string>& config):
		config_(config),
		file_read_(true),
		all_config_options_found_(true) {};
	ConfigFactory(const std::string& filename);

	int getConfigInt(const std::string& key);
	f32 getConfigFloat(const std::string& key);
	int getConfigTalent(const std::string& key);
	float getConfigBuff(const std::string& key);
	std::string getConfigString(const std::string& key);
	EnhSimConfig& buildEnhSimConfig(bool setEP, bool setGraph);
	bool usingAPbase();
	bool allConfigsFound();
	bool isFileRead();

private:
	EnhSimConfig sc;
	bool file_read_;
	bool all_config_options_found_;
	std::map<std::string, std::string> config_;

};